Component({
    options: {
        multipleSlots: true, // 在组件定义时的选项中启用多slot支持
        addGlobalClass: true
    },
    /**
     * 组件的属性列表
     */
    properties: {
        /**
         * 输入框当前值，用户需要通过 onChange 事件的 event.target.value 来更新 value 值，必填
         */
        value: {
            type: String,
            value: ''
        },
        /**
         * 最大长度
         * @default 200
         */
        maxLength: {
            type: Number, 
            value: 200
        },
        /**
         * 占位符
         */
        placeholder: {
            type: String,
            value: ''
        },
        /**
         * 指定 placeholder 的样式类，只在小程序有效
         */
        placeholderClass: {
            type: String,
            value: ''
        },
        /**
         * 指定 placeholder 的样式，只在小程序有效
         */
        placeholderStyle: {
            type: String,
            value: ''
        },
        /**
         * 是否禁用
         * @default false
         */
        disabled: {
            type: Boolean,
            value: false
        },
        /**
         * 是否自动聚焦
         * @default false
         */
        autoFocus: {
            type: Boolean,
            value: false
        },
        /**
         * 获取焦点
         * @default false
         */
        focus: {
            type: Boolean,
            value: false
        },
        /**
         * 是否显示键盘上方带有“完成”按钮那一栏
         * @default false
         */
        showConfirmBar: {
            type: Boolean,
            value: false
        },
        /**
         * 光标起始位置，自动聚集时有效，需与 selection-end 搭配使用
         * @default -1
         */
        selectionStart: {
            type: Number,
            value: -1
        },
        /**
         * 光标结束位置，自动聚集时有效，需与 selectionStart 搭配使用
         * @default -1
         */
        selectionEnd: {
            type: Number,
            value: -1
        },
        /**
         * 是否显示字数
         * @default true
         */
        count: {
            type: Boolean,
            value: true
        },
        /**
         * 如果 textarea 是在一个 position:fixed 的区域，需要显示指定属性 fixed 为 true
         * @default false
         */
        fixed: {
            type: Boolean,
            value: false
        },
        /**
         * 文字超出最大长度时是否禁止输入，若否，则还可以在 maxLength 的基础上输入 500 字符，并右下角红字提示
         * @default true
         */
        textOverflowForbidden: {
            type: Boolean,
            value: true
        },
        /**
         * 输入框高度
         * @default 100
         */
        height: {
            type: Number, 
            value: 100
        },
        /**
         * 指定光标与键盘的距离，单位 px。
         * 取 input 距离底部的距离和 cursor-spacing 指定的距离的最小值作为光标与键盘的距离，
         * 只在小程序端有效，目前安卓端微信官方有 bug，该特性失效
         * @default 100
         */
        cursorSpacing: {
            type: Number,
            value: 100
        },
    },
    
    /**
     * 组件的初始数据
     */
    data: {

    },

    /**
     * 组件的方法列表
     */
    methods: {
        handleInput: function(e) {
            this.triggerEvent('change', e.detail.value)
        },
        handleFocus: function(e) {

        },
        handleBlur: function(e) {

        },
        handleConfirm: function(e) {

        },
        handleLinechange: function(e) {

        },
    }
})